package cup.com.icss.model;

import java.util.ArrayList;
import java.util.List;

public class WaterElectricityExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public WaterElectricityExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("ID is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("ID is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("ID =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("ID <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("ID >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("ID >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("ID <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("ID <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("ID like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("ID not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("ID in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("ID not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("ID between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("ID not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingIsNull() {
            addCriterion("STORIED_BUILDING is null");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingIsNotNull() {
            addCriterion("STORIED_BUILDING is not null");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingEqualTo(String value) {
            addCriterion("STORIED_BUILDING =", value, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingNotEqualTo(String value) {
            addCriterion("STORIED_BUILDING <>", value, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingGreaterThan(String value) {
            addCriterion("STORIED_BUILDING >", value, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingGreaterThanOrEqualTo(String value) {
            addCriterion("STORIED_BUILDING >=", value, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingLessThan(String value) {
            addCriterion("STORIED_BUILDING <", value, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingLessThanOrEqualTo(String value) {
            addCriterion("STORIED_BUILDING <=", value, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingLike(String value) {
            addCriterion("STORIED_BUILDING like", value, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingNotLike(String value) {
            addCriterion("STORIED_BUILDING not like", value, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingIn(List<String> values) {
            addCriterion("STORIED_BUILDING in", values, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingNotIn(List<String> values) {
            addCriterion("STORIED_BUILDING not in", values, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingBetween(String value1, String value2) {
            addCriterion("STORIED_BUILDING between", value1, value2, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andStoriedBuildingNotBetween(String value1, String value2) {
            addCriterion("STORIED_BUILDING not between", value1, value2, "storiedBuilding");
            return (Criteria) this;
        }

        public Criteria andDormitoryIsNull() {
            addCriterion("DORMITORY is null");
            return (Criteria) this;
        }

        public Criteria andDormitoryIsNotNull() {
            addCriterion("DORMITORY is not null");
            return (Criteria) this;
        }

        public Criteria andDormitoryEqualTo(String value) {
            addCriterion("DORMITORY =", value, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryNotEqualTo(String value) {
            addCriterion("DORMITORY <>", value, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryGreaterThan(String value) {
            addCriterion("DORMITORY >", value, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryGreaterThanOrEqualTo(String value) {
            addCriterion("DORMITORY >=", value, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryLessThan(String value) {
            addCriterion("DORMITORY <", value, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryLessThanOrEqualTo(String value) {
            addCriterion("DORMITORY <=", value, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryLike(String value) {
            addCriterion("DORMITORY like", value, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryNotLike(String value) {
            addCriterion("DORMITORY not like", value, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryIn(List<String> values) {
            addCriterion("DORMITORY in", values, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryNotIn(List<String> values) {
            addCriterion("DORMITORY not in", values, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryBetween(String value1, String value2) {
            addCriterion("DORMITORY between", value1, value2, "dormitory");
            return (Criteria) this;
        }

        public Criteria andDormitoryNotBetween(String value1, String value2) {
            addCriterion("DORMITORY not between", value1, value2, "dormitory");
            return (Criteria) this;
        }

        public Criteria andElectricityIsNull() {
            addCriterion("ELECTRICITY is null");
            return (Criteria) this;
        }

        public Criteria andElectricityIsNotNull() {
            addCriterion("ELECTRICITY is not null");
            return (Criteria) this;
        }

        public Criteria andElectricityEqualTo(Integer value) {
            addCriterion("ELECTRICITY =", value, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityNotEqualTo(Integer value) {
            addCriterion("ELECTRICITY <>", value, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityGreaterThan(Integer value) {
            addCriterion("ELECTRICITY >", value, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityGreaterThanOrEqualTo(Integer value) {
            addCriterion("ELECTRICITY >=", value, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityLessThan(Integer value) {
            addCriterion("ELECTRICITY <", value, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityLessThanOrEqualTo(Integer value) {
            addCriterion("ELECTRICITY <=", value, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityIn(List<Integer> values) {
            addCriterion("ELECTRICITY in", values, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityNotIn(List<Integer> values) {
            addCriterion("ELECTRICITY not in", values, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityBetween(Integer value1, Integer value2) {
            addCriterion("ELECTRICITY between", value1, value2, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityNotBetween(Integer value1, Integer value2) {
            addCriterion("ELECTRICITY not between", value1, value2, "electricity");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceIsNull() {
            addCriterion("ELECTRICITY_PRICE is null");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceIsNotNull() {
            addCriterion("ELECTRICITY_PRICE is not null");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceEqualTo(Integer value) {
            addCriterion("ELECTRICITY_PRICE =", value, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceNotEqualTo(Integer value) {
            addCriterion("ELECTRICITY_PRICE <>", value, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceGreaterThan(Integer value) {
            addCriterion("ELECTRICITY_PRICE >", value, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceGreaterThanOrEqualTo(Integer value) {
            addCriterion("ELECTRICITY_PRICE >=", value, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceLessThan(Integer value) {
            addCriterion("ELECTRICITY_PRICE <", value, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceLessThanOrEqualTo(Integer value) {
            addCriterion("ELECTRICITY_PRICE <=", value, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceIn(List<Integer> values) {
            addCriterion("ELECTRICITY_PRICE in", values, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceNotIn(List<Integer> values) {
            addCriterion("ELECTRICITY_PRICE not in", values, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceBetween(Integer value1, Integer value2) {
            addCriterion("ELECTRICITY_PRICE between", value1, value2, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andElectricityPriceNotBetween(Integer value1, Integer value2) {
            addCriterion("ELECTRICITY_PRICE not between", value1, value2, "electricityPrice");
            return (Criteria) this;
        }

        public Criteria andWaterIsNull() {
            addCriterion("WATER is null");
            return (Criteria) this;
        }

        public Criteria andWaterIsNotNull() {
            addCriterion("WATER is not null");
            return (Criteria) this;
        }

        public Criteria andWaterEqualTo(Integer value) {
            addCriterion("WATER =", value, "water");
            return (Criteria) this;
        }

        public Criteria andWaterNotEqualTo(Integer value) {
            addCriterion("WATER <>", value, "water");
            return (Criteria) this;
        }

        public Criteria andWaterGreaterThan(Integer value) {
            addCriterion("WATER >", value, "water");
            return (Criteria) this;
        }

        public Criteria andWaterGreaterThanOrEqualTo(Integer value) {
            addCriterion("WATER >=", value, "water");
            return (Criteria) this;
        }

        public Criteria andWaterLessThan(Integer value) {
            addCriterion("WATER <", value, "water");
            return (Criteria) this;
        }

        public Criteria andWaterLessThanOrEqualTo(Integer value) {
            addCriterion("WATER <=", value, "water");
            return (Criteria) this;
        }

        public Criteria andWaterIn(List<Integer> values) {
            addCriterion("WATER in", values, "water");
            return (Criteria) this;
        }

        public Criteria andWaterNotIn(List<Integer> values) {
            addCriterion("WATER not in", values, "water");
            return (Criteria) this;
        }

        public Criteria andWaterBetween(Integer value1, Integer value2) {
            addCriterion("WATER between", value1, value2, "water");
            return (Criteria) this;
        }

        public Criteria andWaterNotBetween(Integer value1, Integer value2) {
            addCriterion("WATER not between", value1, value2, "water");
            return (Criteria) this;
        }

        public Criteria andWaterPriceIsNull() {
            addCriterion("WATER_PRICE is null");
            return (Criteria) this;
        }

        public Criteria andWaterPriceIsNotNull() {
            addCriterion("WATER_PRICE is not null");
            return (Criteria) this;
        }

        public Criteria andWaterPriceEqualTo(Integer value) {
            addCriterion("WATER_PRICE =", value, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andWaterPriceNotEqualTo(Integer value) {
            addCriterion("WATER_PRICE <>", value, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andWaterPriceGreaterThan(Integer value) {
            addCriterion("WATER_PRICE >", value, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andWaterPriceGreaterThanOrEqualTo(Integer value) {
            addCriterion("WATER_PRICE >=", value, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andWaterPriceLessThan(Integer value) {
            addCriterion("WATER_PRICE <", value, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andWaterPriceLessThanOrEqualTo(Integer value) {
            addCriterion("WATER_PRICE <=", value, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andWaterPriceIn(List<Integer> values) {
            addCriterion("WATER_PRICE in", values, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andWaterPriceNotIn(List<Integer> values) {
            addCriterion("WATER_PRICE not in", values, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andWaterPriceBetween(Integer value1, Integer value2) {
            addCriterion("WATER_PRICE between", value1, value2, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andWaterPriceNotBetween(Integer value1, Integer value2) {
            addCriterion("WATER_PRICE not between", value1, value2, "waterPrice");
            return (Criteria) this;
        }

        public Criteria andCombinedIsNull() {
            addCriterion("COMBINED is null");
            return (Criteria) this;
        }

        public Criteria andCombinedIsNotNull() {
            addCriterion("COMBINED is not null");
            return (Criteria) this;
        }

        public Criteria andCombinedEqualTo(Integer value) {
            addCriterion("COMBINED =", value, "combined");
            return (Criteria) this;
        }

        public Criteria andCombinedNotEqualTo(Integer value) {
            addCriterion("COMBINED <>", value, "combined");
            return (Criteria) this;
        }

        public Criteria andCombinedGreaterThan(Integer value) {
            addCriterion("COMBINED >", value, "combined");
            return (Criteria) this;
        }

        public Criteria andCombinedGreaterThanOrEqualTo(Integer value) {
            addCriterion("COMBINED >=", value, "combined");
            return (Criteria) this;
        }

        public Criteria andCombinedLessThan(Integer value) {
            addCriterion("COMBINED <", value, "combined");
            return (Criteria) this;
        }

        public Criteria andCombinedLessThanOrEqualTo(Integer value) {
            addCriterion("COMBINED <=", value, "combined");
            return (Criteria) this;
        }

        public Criteria andCombinedIn(List<Integer> values) {
            addCriterion("COMBINED in", values, "combined");
            return (Criteria) this;
        }

        public Criteria andCombinedNotIn(List<Integer> values) {
            addCriterion("COMBINED not in", values, "combined");
            return (Criteria) this;
        }

        public Criteria andCombinedBetween(Integer value1, Integer value2) {
            addCriterion("COMBINED between", value1, value2, "combined");
            return (Criteria) this;
        }

        public Criteria andCombinedNotBetween(Integer value1, Integer value2) {
            addCriterion("COMBINED not between", value1, value2, "combined");
            return (Criteria) this;
        }

        public Criteria andYearsIsNull() {
            addCriterion("YEARS is null");
            return (Criteria) this;
        }

        public Criteria andYearsIsNotNull() {
            addCriterion("YEARS is not null");
            return (Criteria) this;
        }

        public Criteria andYearsEqualTo(String value) {
            addCriterion("YEARS =", value, "years");
            return (Criteria) this;
        }

        public Criteria andYearsNotEqualTo(String value) {
            addCriterion("YEARS <>", value, "years");
            return (Criteria) this;
        }

        public Criteria andYearsGreaterThan(String value) {
            addCriterion("YEARS >", value, "years");
            return (Criteria) this;
        }

        public Criteria andYearsGreaterThanOrEqualTo(String value) {
            addCriterion("YEARS >=", value, "years");
            return (Criteria) this;
        }

        public Criteria andYearsLessThan(String value) {
            addCriterion("YEARS <", value, "years");
            return (Criteria) this;
        }

        public Criteria andYearsLessThanOrEqualTo(String value) {
            addCriterion("YEARS <=", value, "years");
            return (Criteria) this;
        }

        public Criteria andYearsLike(String value) {
            addCriterion("YEARS like", value, "years");
            return (Criteria) this;
        }

        public Criteria andYearsNotLike(String value) {
            addCriterion("YEARS not like", value, "years");
            return (Criteria) this;
        }

        public Criteria andYearsIn(List<String> values) {
            addCriterion("YEARS in", values, "years");
            return (Criteria) this;
        }

        public Criteria andYearsNotIn(List<String> values) {
            addCriterion("YEARS not in", values, "years");
            return (Criteria) this;
        }

        public Criteria andYearsBetween(String value1, String value2) {
            addCriterion("YEARS between", value1, value2, "years");
            return (Criteria) this;
        }

        public Criteria andYearsNotBetween(String value1, String value2) {
            addCriterion("YEARS not between", value1, value2, "years");
            return (Criteria) this;
        }

        public Criteria andMonthIsNull() {
            addCriterion("MONTH is null");
            return (Criteria) this;
        }

        public Criteria andMonthIsNotNull() {
            addCriterion("MONTH is not null");
            return (Criteria) this;
        }

        public Criteria andMonthEqualTo(String value) {
            addCriterion("MONTH =", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotEqualTo(String value) {
            addCriterion("MONTH <>", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthGreaterThan(String value) {
            addCriterion("MONTH >", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthGreaterThanOrEqualTo(String value) {
            addCriterion("MONTH >=", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthLessThan(String value) {
            addCriterion("MONTH <", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthLessThanOrEqualTo(String value) {
            addCriterion("MONTH <=", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthLike(String value) {
            addCriterion("MONTH like", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotLike(String value) {
            addCriterion("MONTH not like", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthIn(List<String> values) {
            addCriterion("MONTH in", values, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotIn(List<String> values) {
            addCriterion("MONTH not in", values, "month");
            return (Criteria) this;
        }

        public Criteria andMonthBetween(String value1, String value2) {
            addCriterion("MONTH between", value1, value2, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotBetween(String value1, String value2) {
            addCriterion("MONTH not between", value1, value2, "month");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("STATUS is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("STATUS is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion("STATUS =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion("STATUS <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion("STATUS >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion("STATUS >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion("STATUS <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion("STATUS <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLike(String value) {
            addCriterion("STATUS like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotLike(String value) {
            addCriterion("STATUS not like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<String> values) {
            addCriterion("STATUS in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<String> values) {
            addCriterion("STATUS not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion("STATUS between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion("STATUS not between", value1, value2, "status");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}